【剑控享成】闲谈EPOS和FB284的前世今生

您所在的位置:网站首页 西门子v90 EPOS最大速度 【剑控享成】闲谈EPOS和FB284的前世今生

【剑控享成】闲谈EPOS和FB284的前世今生

2023-10-05 23:04| 来源: 网络整理| 查看: 265

二、TIA Portal 驱动库程序

FB284属于TIA Portal提供的驱动库程序,用于基于博途编程环境的S7-1200、S7-1500、S7-300/400等SIMATIC控制器对G/S120、V90等SINAMICS驱动器的基本定位控制。目前博途驱动库主要包含以下三种类型的功能块:

表2:博途常用驱动库

上面提到了循环和非循环数据交换,在功能块里是如何实现的?实际上FB284/FB285用到了DPRD/DAT和DPWR_DAT指令,即“读取标准DP从站的一致性数据”,而FB286/287则使用了RDREC指令和WRREC指令。

图1:驱动库调用原理

1

三、V90PN 通过111报文定位的实现过程

如上所述FB284库实际上就是通过一致性读写指令去对111报文的IO进行操作,下面我们自己做一个简单的FB来实现FB284基本功能,主要给大家分析如何对报文操作。

1. 111报文

因为是操作111报文,所以我们首先需要了解该报文的详细信息,111报文是带扩展功能定位运行报文,常用于EPOS的控制。111报文在通信组态时映射的IO地址如图2所示,我们实际上就是对此IO的操作,可以看到111报文是12个接受/发送字,每个控制/状态字的含义如表3所示。

图2:111报文IQ地址

过程数据通道 地址 信号 描述 数据类型 PLC-驱动器 PZD1 QW64 STW1 控制字1 U16 PZD2 QW66 POS_STW1 基本定位器的控制字1 U16 PZD3 QW68 POS_STW2 基本定位器的控制字2 U16 PZD4 QW70 STW2 控制字2 U16 PZD5 QW72 OVERRIDE 位置速度倍率 U16 PZD6 QD74 MDI_TARPOS MDI位置 I32 PZD7 PZD8 QD78 MDI_VELOCITY MDI速度 I32 PZD9 PZD10 QW82 MDI_ACC MDI加速度倍率 U16 PZD11 QW84 MDI_DEC MDI减速度倍率 U16 PZD12 QW86 USER 用户定义接受字 U16 驱动器-PLC PZD1 IW68 ZSW1 状态字1 U16 PZD2 IW70 POS_ZSW1 基本定位器的状态字1 U16 PZD3 IW72 POS_ZSW2 基本定位器的状态字2 U16 PZD4 IW74 ZSW2 状态字2 U16 PZD5 IW76 MELDW 消息字 U16 PZD6 ID78 XIST_A 位置实际值A I32 PZD7 PZD8 ID82 NIST_B 转速实际值B I32 PZD9 PZD10 IW86 FAULT_CODE 故障代码 U16 PZD11 IW88 WARN_CODE 报警代码 U16 PZD12 IW90 USER 用户定义发送字 U16

表3: 111报文数据格式

2. EPOS功能、111报文及FB284对应关系

EPOS的几种运行模式就是通过对111报文的IO读写实现的,对应关系如表4/5所述。

FB284管脚 111报文 Q区地址 EPOS功能描述 输入参数/控制数据 1 EnableAxis STW1.0 Q65.0 接通电机/轴使能 2 ConfigEPos.%X0 STW1.1 Q65.1 1=OFF2(自由停车)无效 3 ConfigEPos.%X1 STW1.2 Q65.2 1=OFF3(快速停车)无效 4 STW1.3 Q65.3 允许运行(可以使能脉冲) 5 CancelTransing STW1.4 Q65.4 0=拒绝执行任务 1=不拒绝执行 6 IntermediateStop STW1.5 Q65.5 0=暂停运行任务 1=不暂停 7 ExecuteMode STW1.6 Q65.6 激活运行任务 STW1.11 Q64.3 启动回参考点命令 POS_STW2.1 Q69.1 设置参考点 8 AckError STW1.7 Q65.7 故障确认 9 JOG1 STW1.8 Q64.0 正向点动使能(信号源1) 10 JOG2 STW1.9 Q64.1 反向点动使能(信号源2) 11 STW1.10 Q64.2 1=PLC控制 12 POS_STW1.0-1.5 Q67.0-5 选择运行程序段编号 13 POS_STW1.8 Q66.0 1=绝对定位 0=相对定位 14 Positive POS_STW1.9 Q66.1 两个位组合 0-最短距离绝对定位1-正方向,2-负方向 15 Negative POS_STW.10 Q66.2 16 ConfigEPos.%X8 POS_STW1.12 Q66.4 1 =连续接受设定值(可以实时改变)0 = STW1.6从 0 变为 1 后,才接收位置设定值的修改。 17 POS_STW1.14 Q66.6 1=信号调整 0=信号定位 18 POS_STW1.15 Q66.7 1 = MDI 选择 0=运行程序段 19 ConfigEPos.%X6 POS_STW2.2 Q69.2 1=参考点挡块激活(原点开关信号) 20 FlyRef POS_STW2.8 Q68.0 1=运行中回零(被动回零)0=不选择运行中回零(主动回零) 21 Positive/Negative POS_STW2.9 Q68.1 1=在负方向搜索参考点 0=在正方向 22 ConfigEPos.%X2 POS_STW2.14 Q68.6 1=激活软限位开关 23 ConfigEPos.%X3 POS_STW2.15 Q68.7 1=激活硬件限位 24 Position MDI_TARPOS QD74 ModePos=1 或2 时的位置设定值ModePos=6 时的程序段号 25 Velocity MDI_VELOCITY QD78 ModePos=1、2、3 时的速度设定值 26 OverV OVERRIDE QW72 速度倍率 27 OverAcc MDI_ACC QW82 加速度倍率 28 OverDec MDI_DEC QW84 减速度倍率

表4: 111报文控制字详细描述

FB284管脚 111报文 I区地址 EPOS功能描述 输出参数/状态数据 1 AxisEnabled ZSW1.2 I69.2 驱动已使能 2 AxisError ZSW1.3 I69.3 驱动故障 3 AxisWarn ZSW1.7 I69.7 驱动报警 4 AxisPosOk ZSW1.10 I68.2 轴的目标位置到达 5 AxisRef ZSW1.11 I68.3 回零位置设置 8 ActPosition XIST_A ID78 当前位置 ActVelocity NIST_B ID82 当前速度 9 EPosZSW1 EPOS ZSW1的状态 10 EPosZSW2 EPOS ZSW2的状态 12 ActFault FAULT_CODE IW86 当前的故障代码 ActWarn WARN_CODE IW88 当前的报警代码

表5: 111报文状态字详细描述

3.EPOS各功能配合111报文的具体实现

(1)一致性读写

前面说过通过DPWD/DAT和DPWR_DAT指令实现,如图2所示。

图2:一致性读写指令

(2)轴使能

伺服各种运动模式运行的前提就是先使能接通电机,这里就要提到大家耳熟能详的16#047E和16#047F了。大家用西门子G120包括V20变频器都很清楚这是停止(OFF1)和正转启动控制字,再加上速度给定就可以启停运行了。同样基于SINAMICS平台的V90PN伺服也是如此,区别就是伺服轴需要激活不同的运行任务,所以STW1.6一开始是0,由后面具体任务控制。这样V90轴使能就是把16#047E/16#047F控制字里的第6位改为0,也就是16#043E/16#043F。当然驱动器断电后再上电也需要先赋值停止控制字才能转入启动,轴使能程序如图3所示。

图3:V90PN轴使能

(3)设定值和反馈值

位置设定值单位是LU,速度的设定值是1000LU/分钟,111报文的OverV控制字10进制整数16384(十六进制16#4000)对应100%的速度设定值,最大设定速度是十进制32767(对应200%)。而实际速度(反馈值)因为是双字,所以十六进制的40000000H 对应100%的速度基准值(P2000的参数值)。

实际速度值处理程序如下所示:

#Vel_act.%W0 := "111".R[8];

#Vel_act.%W1 := "111".R[7];

#TR[0] := DINT_TO_REAL(#Vel_act);

#当前速度 := REAL_TO_DINT(#TR[1]);

(4)MDI控制

MDI指设定值直接给定,就是通过外部给定来控制驱动器,包括FB284里的运行模式1、2、3三种,如表6所示。

表6:MDI的控制

(5)回原点(主动)如表7所示

表7:主动回原

(6)直接设置参考点

实际就是直接将POS_STW2.1置1。

(7)运行程序段如表8所示

表8:运行程序段

(8)点动/速度如表9所示

表9:点动速度

(9)点动/增量如表10所示

表10:点动增量

(10)设定值实时更改

有时我们需要在当前任务还没结束时触发新的任务(就是加载新的设定值),这时只需要POS_STW1.12置1即可(FB284里的ConfigEPos.%X8就是对应该位)。

4.程序编写注意事项

要注意运行模式切换时报文相关控制位的复位,这样不会导致现有模式的状态干扰到下一模式,比如点动模式里正转和反转位(STW1.8和STW1.9)在其他模式里就要程序里将其置0。下面是编写用于EPOS运行FB的部分程序,未考虑报警等处理,只是实现基本功能演示,实际项目中我们都是用官方的FB284库,考虑更全面周到,逻辑更严谨。

IF #MODE = 2 THEN

"111".W[1].%X9 := 0;

"111".W[1].%X10 := 0;

"111".W[1].%X12 := #连续接受设定值;

"111".W[1].%X14 := 0;

"111".W[1].%X15 := 1;

"111".W[2].%X2 := 0;

"111".W[0].%X11 := 0;

"111".W[0].%X6 := #定位启动;

"111".W[2].%X5 := 0;

"111".W[1].%X8 := 1;

"111".W[0].%X8 := 0;

"111".W[0].%X9 := 0;

"111".W[2].%X9 := 0;

"111".W[2].%X1 := 0;

IF #TB[3] THEN

"111".W[0].%X6 := 0;

END_IF;

END_IF;

IF #MODE = 3 THEN

IF #正方向 AND NOT #负方向 THEN

"111".W[1].%X9 := 1;

"111".W[1].%X10 := 0;

ELSIF #负方向 AND NOT #正方向 THEN

"111".W[1].%X9 := 0;

"111".W[1].%X10 := 1;

END_IF;

IF #拒绝任务 THEN

"111".W[0].%X4 := 0;

ELSE

"111".W[0].%X4 := 1;

END_IF;

IF #暂停任务 THEN

"111".W[0].%X5 := 0;

ELSE

"111".W[0].%X5 := 1;

END_IF;

"111".W[1].%X12 := #连续接受设定值;

"111".W[0].%X11 := 0;

"111".W[2].%X2 := 0;

"111".W[1].%X14 := 1;

"111".W[1].%X15 := 1;

"111".W[0].%X6 := #定位启动;

"111".W[2].%X5 := 0;

"111".W[0].%X8 := 0;

"111".W[0].%X9 := 0;

"111".W[2].%X9 := 0;

"111".W[2].%X1 := 0;

END_IF;

IF #MODE = 4 THEN

IF #正方向 AND NOT #负方向 THEN

"111".W[2].%X9 := 0;

ELSIF #负方向 AND NOT #正方向 THEN

"111".W[2].%X9 := 1;

ELSE

"111".W[2].%X9 := 0;

END_IF;

"111".W[1].%X9 := 0;

"111".W[1].%X10 := 0;

"111".W[1].%X12 := 0;

"111".W[2].%X2 := #原点开关;

"111".W[0].%X11 := #定位启动;

"111".W[2].%X5 := 0;

"111".W[0].%X8 := 0;

"111".W[0].%X9 := 0;

"111".W[2].%X1 := 0;

图4:“ 自制FB284” 功能块

作 者 简 介

郭老师

电气自动化专业培训师

西门子工业专家

工业自动化控制系统专家

曾担任某研究院电气所副所长,擅长系统技术架构设计与开发,精通 西门子、施耐德电气、罗克韦尔等各主流品牌全集成自动化系统的设计、编程、调试, 包括西门子博途自动化平台、施耐德Modicon和Somachine平台等,涉及浮法玻璃生产、除尘环保、天然气能源、卷绕机械、涂装、非标流水线等多个行业。

2014/2016/2018连续三届荣获西门子颁发的“西门子工业专家”称呼, 2016和2018年连续两届应邀在西门子工业专家会议上演讲。返回搜狐,查看更多



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3